#Setup the working environment
setwd("/hpc/group/pbenfeylab/mz187/")
# Load the basic package_Seurat
suppressMessages(library(tidyverse))
suppressMessages(library(Seurat))
suppressMessages(library(cowplot))
suppressMessages(library(ComplexHeatmap))
suppressMessages(library(circlize))
suppressMessages(library(GeneOverlap))
suppressMessages(library(gprofiler2))
suppressMessages(library(ggrepel))
suppressMessages(library(muscat))
suppressMessages(library(limma))
suppressMessages(library(scran))
suppressMessages(library(future))
suppressMessages(library(RColorBrewer))
Warning message: “package ‘tidyverse’ was built under R version 4.2.3” Warning message: “package ‘tibble’ was built under R version 4.2.3” Warning message: “package ‘tidyr’ was built under R version 4.2.3” Warning message: “package ‘readr’ was built under R version 4.2.3” Warning message: “package ‘purrr’ was built under R version 4.2.3” Warning message: “package ‘dplyr’ was built under R version 4.2.3” Warning message: “package ‘stringr’ was built under R version 4.2.3” Warning message: “package ‘forcats’ was built under R version 4.2.3” Warning message: “package ‘lubridate’ was built under R version 4.2.3” Warning message: “package ‘ComplexHeatmap’ was built under R version 4.2.1” Warning message: “package ‘circlize’ was built under R version 4.2.3” Warning message: “package ‘GeneOverlap’ was built under R version 4.2.1” Warning message: “package ‘gprofiler2’ was built under R version 4.2.3” Warning message: “package ‘muscat’ was built under R version 4.2.2” Warning message: “package ‘limma’ was built under R version 4.2.3” Warning message: “package ‘scran’ was built under R version 4.2.3” Warning message: “package ‘SingleCellExperiment’ was built under R version 4.2.2” Warning message: “package ‘SummarizedExperiment’ was built under R version 4.2.2” Warning message: “package ‘MatrixGenerics’ was built under R version 4.2.1” Warning message: “package ‘matrixStats’ was built under R version 4.2.3” Warning message: “package ‘GenomicRanges’ was built under R version 4.2.3” Warning message: “package ‘BiocGenerics’ was built under R version 4.2.1” Warning message: “package ‘S4Vectors’ was built under R version 4.2.3” Warning message: “package ‘IRanges’ was built under R version 4.2.3” Warning message: “package ‘GenomeInfoDb’ was built under R version 4.2.3” Warning message: “package ‘Biobase’ was built under R version 4.2.3” Warning message: “package ‘scuttle’ was built under R version 4.2.3” Warning message: “package ‘RColorBrewer’ was built under R version 4.2.3”
sessionInfo()
R version 4.2.0 (2022-04-22) Platform: x86_64-conda-linux-gnu (64-bit) Running under: CentOS Stream 8 Matrix products: default BLAS/LAPACK: /hpc/group/pbenfeylab/mz187/miniconda3/envs/muscat/lib/libopenblasp-r0.3.21.so locale: [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C [3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8 [5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8 [7] LC_PAPER=en_US.UTF-8 LC_NAME=C [9] LC_ADDRESS=C LC_TELEPHONE=C [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C attached base packages: [1] grid stats graphics grDevices utils datasets methods [8] base other attached packages: [1] future_1.32.0 ggrepel_0.9.3 gprofiler2_0.2.2 [4] GeneOverlap_1.34.0 circlize_0.4.15 ComplexHeatmap_2.14.0 [7] cowplot_1.1.1 Seurat_3.1.5 lubridate_1.9.2 [10] forcats_1.0.0 stringr_1.5.0 dplyr_1.1.2 [13] purrr_1.0.1 readr_2.1.4 tidyr_1.3.0 [16] tibble_3.2.1 ggplot2_3.4.2 tidyverse_2.0.0 loaded via a namespace (and not attached): [1] Rtsne_0.16 colorspace_2.1-0 rjson_0.2.21 [4] ggridges_0.5.4 IRdisplay_1.1 GlobalOptions_0.1.2 [7] base64enc_0.1-3 clue_0.3-64 leiden_0.4.3 [10] listenv_0.9.0 fansi_1.0.4 codetools_0.2-19 [13] splines_4.2.0 doParallel_1.0.17 IRkernel_1.3.2 [16] jsonlite_1.8.5 ica_1.0-3 cluster_2.1.4 [19] png_0.1-8 uwot_0.1.14 sctransform_0.3.5 [22] compiler_4.2.0 httr_1.4.6 Matrix_1.5-4.1 [25] fastmap_1.1.1 lazyeval_0.2.2 cli_3.6.1 [28] htmltools_0.5.5 tools_4.2.0 rsvd_1.0.5 [31] igraph_1.5.0 gtable_0.3.3 glue_1.6.2 [34] RANN_2.6.1 reshape2_1.4.4 Rcpp_1.0.10 [37] vctrs_0.6.3 ape_5.7-1 nlme_3.1-157 [40] iterators_1.0.14 lmtest_0.9-40 globals_0.16.2 [43] timechange_0.2.0 lifecycle_1.0.3 irlba_2.3.5.1 [46] gtools_3.9.4 MASS_7.3-60 zoo_1.8-12 [49] scales_1.2.1 hms_1.1.3 parallel_4.2.0 [52] RColorBrewer_1.1-3 reticulate_1.25 pbapply_1.7-0 [55] gridExtra_2.3 stringi_1.7.6 S4Vectors_0.36.0 [58] foreach_1.5.2 caTools_1.18.2 BiocGenerics_0.44.0 [61] shape_1.4.6 repr_1.1.6 bitops_1.0-7 [64] rlang_1.1.1 pkgconfig_2.0.3 matrixStats_1.0.0 [67] evaluate_0.21 lattice_0.21-8 ROCR_1.0-11 [70] patchwork_1.1.2 htmlwidgets_1.6.2 tidyselect_1.2.0 [73] parallelly_1.36.0 RcppAnnoy_0.0.20 plyr_1.8.8 [76] magrittr_2.0.3 R6_2.5.1 gplots_3.1.3 [79] IRanges_2.32.0 generics_0.1.3 pbdZMQ_0.3-9 [82] pillar_1.9.0 withr_2.5.0 fitdistrplus_1.1-11 [85] survival_3.5-5 future.apply_1.11.0 tsne_0.1-3.1 [88] crayon_1.5.2 uuid_1.1-0 KernSmooth_2.23-21 [91] utf8_1.2.3 plotly_4.10.0 tzdb_0.4.0 [94] GetoptLong_1.0.5 data.table_1.14.8 digest_0.6.31 [97] stats4_4.2.0 munsell_0.5.0 viridisLite_0.4.2
# Read rice root atlast Copilot project
rc.integrated <- readRDS("Rice_12S_WT_atlas_20221117_seu3.rds")
table(rc.integrated$orig.ident,rc.integrated$celltype.fine.anno)
Stem Cell Niche Sclerenchyma Root Cap Atrichoblast Trichoblast Cortex
sc_108 508 194 310 255 266 961
sc_109 327 176 212 156 785 770
sc_115 157 92 155 444 1299 373
sc_116 268 198 240 194 1260 1083
sc_192 781 765 704 121 123 1791
sc_193 627 617 585 102 102 1417
sc_194 404 478 632 120 31 1184
sc_195 437 509 626 124 44 1209
sc_196 300 723 245 97 326 933
sc_7 225 189 134 54 74 911
tz1 1923 2024 413 2364 485 2626
tz2 1789 2528 468 644 606 3999
Endodermis Phloem Pericycle Exodermis Protoxylem Metaxylem
sc_108 558 246 751 381 376 189
sc_109 690 116 423 435 325 84
sc_115 136 98 203 243 162 19
sc_116 210 262 668 274 467 64
sc_192 250 200 282 656 894 83
sc_193 152 177 248 496 693 80
sc_194 144 116 246 537 650 66
sc_195 143 118 280 536 693 83
sc_196 123 69 151 976 562 44
sc_7 175 101 451 184 494 50
tz1 697 207 671 2782 1625 162
tz2 1084 745 714 2826 987 364
table(rc.integrated$orig.ident,rc.integrated$timezone.ID.P)
Elongation Maturation1 Maturation2 Meristem
sc_108 912 465 1339 2279
sc_109 699 1011 831 1958
sc_115 374 1279 886 842
sc_116 879 1523 1043 1743
sc_192 1805 432 2159 2254
sc_193 1434 366 1654 1842
sc_194 1194 298 1635 1481
sc_195 1224 344 1751 1483
sc_196 1550 662 1156 1181
sc_7 713 250 852 1227
tz1 4531 2296 3729 5423
tz2 5229 1887 2976 6662
table(rc.integrated$orig.ident)
sc_108 sc_109 sc_115 sc_116 sc_192 sc_193 sc_194 sc_195 sc_196 sc_7 tz1 4995 4499 3381 5188 6650 5296 4608 4802 4549 3042 15979 tz2 16754
# Check the cell type annotation for highly confidently annotated cells
options(repr.plot.width=16, repr.plot.height=16)
DimPlot(rc.integrated, reduction = "umap", group.by = "timezone.ID.P",
pt.size = 1.0,
order = c("Maturation2","Maturation1","Elongation","Meristem"),
cols = c("#ebf8e3", "#51c8bd", "#009ac8", "#005fa8"),label = F)
zscore <- function(x){(x-mean(x))/sd(x)}
known.good.markers <- read.csv("./1-Root_Atlas/Ethylene_genes.csv")
known.good.markers$Gene.ID
length(known.good.markers$Gene.ID)>1
rc.integrated
An object of class Seurat 96918 features across 79743 samples within 3 assays Active assay: integrated (19395 features, 19395 variable features) 2 other assays present: RNA, SCT 5 dimensional reductions calculated: pca, umap, umap_50, umap_3D, umap_2D
## Check gene existence in single cell data
match(known.good.markers$Gene.ID,rownames(rc.integrated@assays$SCT@data))
## calculate gene list module score for each cell
Ethylene_module_score <- as.numeric(apply(apply(as.matrix(rc.integrated@assays$SCT@data)[known.good.markers$Gene.ID,], 1, zscore), 1, mean))
Warning message in asMethod(object): “sparse->dense coercion: allocating vector of size 19.4 GiB”
## Add to meta data
rc.integrated$Ethylene_module_score <- Ethylene_module_score
FeaturePlot(rc.integrated, reduction = "umap", feature="Ethylene_module_score", order=TRUE, pt.size=1,cols=c("lightgray","red"))
table(rc.integrated$celltype.fine.anno)
Stem Cell Niche Sclerenchyma Root Cap Atrichoblast Trichoblast
7746 8493 4724 4675 5401
Cortex Endodermis Phloem Pericycle Exodermis
17257 4362 2455 5088 10326
Protoxylem Metaxylem
7928 1288
## Prepare dataframe for heatmap
df <- data.frame(celltype=rc.integrated$celltype.fine.anno, ethylene=rc.integrated$Ethylene_module_score)
df %>% group_by(celltype) %>%
dplyr::summarize(Ethylene_Module_Score = mean(ethylene, na.rm=TRUE))
| celltype | Ethylene_Module_Score |
|---|---|
| <fct> | <dbl> |
| Stem Cell Niche | -0.05798506 |
| Sclerenchyma | -0.02912666 |
| Root Cap | 0.18970615 |
| Atrichoblast | -0.16937811 |
| Trichoblast | -0.13884373 |
| Cortex | 0.07530903 |
| Endodermis | -0.11585721 |
| Phloem | 0.02853841 |
| Pericycle | 0.04115489 |
| Exodermis | -0.03385258 |
| Protoxylem | 0.07034536 |
| Metaxylem | 0.04678408 |
colnames(rc.integrated@meta.data)
# Find included samples
table(rc.integrated$orig.ident)
sc_108 sc_109 sc_115 sc_116 sc_192 sc_193 sc_194 sc_195 sc_196 sc_7 tz1 4995 4499 3381 5188 6650 5296 4608 4802 4549 3042 15979 tz2 16754
# Check what variables are included in the metadata
head(rc.integrated@meta.data)
| orig.ident | nCount_RNA | nFeature_RNA | nCount_spliced_RNA | nFeature_spliced_RNA | nCount_unspliced_RNA | nFeature_unspliced_RNA | percent.mt | percent.cp | nCount_SCT | ⋯ | score.anno | consensus.anno | new_ref | final.anno.P | final.anno.cor.P | final.anno.pvalue.P | celltype.anno | time.anno | celltype.fine.anno | integrated_snn_res.500 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| <chr> | <dbl> | <int> | <dbl> | <int> | <dbl> | <int> | <dbl> | <dbl> | <dbl> | ⋯ | <fct> | <fct> | <chr> | <chr> | <dbl> | <dbl> | <fct> | <chr> | <fct> | <fct> | |
| AAACCCAAGAATACAC_1 | tz2 | 7533 | 2277 | 7235 | 2203 | 298 | 141 | 0.46462233 | 0.013274924 | 9654 | ⋯ | Endodermis | Endodermis | Maturation_Endodermis | Maturation_Endodermis | 0.9310545 | 1.228848e-88 | Endodermis | Maturation | Endodermis | 341 |
| AAACCCAAGAGTTCGG_1 | tz2 | 6436 | 1952 | 6069 | 1868 | 367 | 131 | 0.52827843 | 0.000000000 | 9882 | ⋯ | Sclerenchyma | Sclerenchyma | Maturation_Sclerenchyma | Maturation_Sclerenchyma | 0.8373472 | 7.925984e-54 | Sclerenchyma | Maturation | Sclerenchyma | 6 |
| AAACCCAAGGTAGCAC_1 | tz2 | 6178 | 2392 | 5902 | 2268 | 276 | 182 | 0.72839107 | 0.016186468 | 9468 | ⋯ | Exodermis | Cortex | Maturation_Cortex | Elongation_Exodermis | 0.4728577 | 1.548340e-12 | Exodermis | Elongation | Exodermis | 2067 |
| AAACCCAAGTGATGGC_1 | tz2 | 28987 | 4895 | 27735 | 4684 | 1252 | 422 | 0.42087832 | 0.000000000 | 10750 | ⋯ | Exodermis | Exodermis | Elongation_Exodermis | Elongation_Exodermis | 0.8639942 | 6.486327e-61 | Exodermis | Elongation | Exodermis | 750 |
| AAACCCAAGTGGAAGA_1 | tz2 | 41734 | 6475 | 39910 | 6181 | 1824 | 612 | 0.06469545 | 0.002396128 | 10108 | ⋯ | Exodermis | Exodermis | Maturation_Exodermis | Maturation_Exodermis | 0.8892509 | 3.514207e-69 | Exodermis | Maturation | Exodermis | 2602 |
| AAACCCAAGTTGCTCA_1 | tz2 | 9579 | 3099 | 9049 | 2918 | 530 | 290 | 0.48021714 | 0.010439503 | 9931 | ⋯ | Trichoblast | Trichoblast | Maturation_Trichoblast | Maturation_Trichoblast | 0.9212941 | 3.704953e-83 | Trichoblast | Maturation | Trichoblast | 350 |
table(rc.integrated$celltype.fine.anno)
Stem Cell Niche Sclerenchyma Root Cap Atrichoblast Trichoblast
7746 8493 4724 4675 5401
Cortex Endodermis Phloem Pericycle Exodermis
17257 4362 2455 5088 10326
Protoxylem Metaxylem
7928 1288
library(ggplot2)
# Make cell type annotation figure
order <- c("Root Cap","Stem Cell Niche", "Atrichoblast", "Trichoblast", "Exodermis","Sclerenchyma","Cortex", "Endodermis","Pericycle", "Phloem", "Protoxylem","Metaxylem")
palette <- c("#6bff00", "#360167","#59adf6", "#Ff4061", "#F8f38d", "#32CD32", "#BF40BF", "#Ffb480","#08cad1", "#9d94ff", "#B5651D", "#834200")
rc.integrated$celltype.fine.anno <- factor(rc.integrated$celltype.fine.anno , levels = order[sort(match(unique(rc.integrated$celltype.fine.anno),order))])
color <- palette[sort(match(unique(rc.integrated$celltype.fine.anno),order))]
options(repr.plot.width=36, repr.plot.height=36)
DimPlot(rc.integrated, reduction = "umap", group.by = "celltype.fine.anno", cols= palette, pt.size = 2.0)+ggtitle("Celltype Annotation UMAP")
options(repr.plot.width=36, repr.plot.height=36)
DimPlot(rc.integrated, reduction = "umap", group.by = "time.anno", pt.size = 2.0)+ggtitle("Stage Annotation UMAP")
names(table(rc.integrated$orig.ident))
dat <- c()
for (i in names(table(rc.integrated$orig.ident))){
dat <- cbind(dat, rowSums(as.matrix(rc.integrated@assays$SCT@data[,which(rc.integrated$orig.ident==i)]))/ncol(rc.integrated@assays$SCT@data[,which(rc.integrated$orig.ident==i)]))
}
Warning message in asMethod(object): “sparse->dense coercion: allocating vector of size 1.2 GiB” Warning message in asMethod(object): “sparse->dense coercion: allocating vector of size 1.1 GiB” Warning message in asMethod(object): “sparse->dense coercion: allocating vector of size 1.3 GiB” Warning message in asMethod(object): “sparse->dense coercion: allocating vector of size 1.6 GiB” Warning message in asMethod(object): “sparse->dense coercion: allocating vector of size 1.3 GiB” Warning message in asMethod(object): “sparse->dense coercion: allocating vector of size 1.1 GiB” Warning message in asMethod(object): “sparse->dense coercion: allocating vector of size 1.2 GiB” Warning message in asMethod(object): “sparse->dense coercion: allocating vector of size 1.1 GiB” Warning message in asMethod(object): “sparse->dense coercion: allocating vector of size 3.9 GiB” Warning message in asMethod(object): “sparse->dense coercion: allocating vector of size 4.1 GiB”
colnames(dat) <- names(table(rc.integrated$orig.ident))
head(dat)
| sc_108 | sc_109 | sc_115 | sc_116 | sc_192 | sc_193 | sc_194 | sc_195 | sc_196 | sc_7 | tz1 | tz2 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| LOC-Os01g01010 | 0.01558148 | 0.014962101 | 0.020025557 | 0.017482494 | 0.008879525 | 0.01254513 | 0.01400355 | 0.009720206 | 0.012126890 | 0.01334948 | 0.002209049 | 0.02028568 |
| LOC-Os01g01019 | 0.01488492 | 0.013508543 | 0.004460023 | 0.012750620 | 0.012404195 | 0.01315037 | 0.01322612 | 0.013819672 | 0.012382583 | 0.01960033 | 0.003561158 | 0.01202689 |
| LOC-Os01g01030 | 0.01307050 | 0.007255742 | 0.005194985 | 0.009844039 | 0.011241453 | 0.01114736 | 0.01467923 | 0.010286735 | 0.008544622 | 0.01376648 | 0.002415309 | 0.02049023 |
| LOC-Os01g01040 | 0.14110164 | 0.108148392 | 0.128448615 | 0.175109170 | 0.155681206 | 0.17301122 | 0.24442815 | 0.210241237 | 0.226294610 | 0.19242056 | 0.044588751 | 0.23713867 |
| LOC-Os01g01050 | 0.03599355 | 0.042282051 | 0.043041547 | 0.054365546 | 0.044027888 | 0.05231847 | 0.07706181 | 0.070555927 | 0.030768492 | 0.07293833 | 0.004700483 | 0.01852074 |
| LOC-Os01g01060 | 0.29554821 | 0.382696141 | 0.173344359 | 0.159261856 | 0.354481463 | 0.36247296 | 0.34133554 | 0.283316863 | 0.213518810 | 0.31624855 | 0.112861843 | 0.45837298 |
options(repr.plot.width=12, repr.plot.height=12)
##The agglomeration method to be used. This should be (an unambiguous abbreviation of) one of "ward.D", "ward.D2", "single", "complete", "average" (= UPGMA), "mcquitty" (= WPGMA), "median" (= WPGMC) or "centroid" (= UPGMC).
##The distance measure to be used. This must be one of "euclidean", "maximum", "manhattan", "canberra", "binary" or "minkowski". Any unambiguous substring can be given.
gplots::heatmap.2(cor(dat,method = "spearman"),col = brewer.pal(11,"YlOrRd"),
hclustfun = function(x) hclust(x, method = "ward.D2"), dendrogram="none",
distfun = function(x) dist(x, method = "euclidean"), key.title = "Spearman correlation", trace = "none",cexCol = 1, cexRow = 1, margin=c(14,14),
Colv=FALSE, Rowv = FALSE)
Warning message in brewer.pal(11, "YlOrRd"): “n too large, allowed maximum for palette YlOrRd is 9 Returning the palette you asked for with that many colors ”
# Find cell type markers to check the overlap the genes
DefaultAssay(rc.integrated) <- "SCT"
Idents(rc.integrated) <- rc.integrated$celltype.fine.anno
rc.markers <- FindAllMarkers(rc.integrated, only.pos = TRUE, test.use = "wilcox",min.pct = 0.25, logfc.threshold = 0.25)
head(rc.markers, n =7)
Calculating cluster Root Cap Calculating cluster Stem Cell Niche Calculating cluster Atrichoblast Calculating cluster Trichoblast Calculating cluster Exodermis Calculating cluster Sclerenchyma Calculating cluster Cortex Calculating cluster Endodermis Calculating cluster Pericycle Calculating cluster Phloem Calculating cluster Protoxylem Calculating cluster Metaxylem
| p_val | avg_logFC | pct.1 | pct.2 | p_val_adj | cluster | gene | |
|---|---|---|---|---|---|---|---|
| <dbl> | <dbl> | <dbl> | <dbl> | <dbl> | <fct> | <chr> | |
| LOC-Os11g37970 | 0 | 2.357365 | 0.554 | 0.106 | 0 | Root Cap | LOC-Os11g37970 |
| LOC-Os01g73200 | 0 | 2.330038 | 0.578 | 0.137 | 0 | Root Cap | LOC-Os01g73200 |
| LOC-Os01g22352 | 0 | 2.192186 | 0.715 | 0.164 | 0 | Root Cap | LOC-Os01g22352 |
| LOC-Os03g18850 | 0 | 2.031749 | 0.832 | 0.399 | 0 | Root Cap | LOC-Os03g18850 |
| LOC-Os07g03467 | 0 | 2.030273 | 0.318 | 0.051 | 0 | Root Cap | LOC-Os07g03467 |
| LOC-Os10g21790 | 0 | 2.017182 | 0.681 | 0.248 | 0 | Root Cap | LOC-Os10g21790 |
| LOC-Os01g22370 | 0 | 1.987568 | 0.710 | 0.230 | 0 | Root Cap | LOC-Os01g22370 |
# Save all the filtered DE genes
write.csv(rc.markers, file = "./1-Root_Atlas/Cell_type_markers.csv", row.names = TRUE)
# Check marker gene expression-Root cap
DefaultAssay(rc.integrated) <- "SCT"
options(repr.plot.width=18, repr.plot.height=6)
rootcap.marker <- c("LOC-Os03g18130","LOC-Os03g14300")
FeaturePlot(rc.integrated, features = rootcap.marker,
cols = c("grey", "#6bff00"), label=F, repel=F, pt.size = 0.4,
label.size = 1.5, order=T,ncol = 3)
# Check marker gene expression-Stem cell niche/meristem
DefaultAssay(rc.integrated) <- "SCT"
options(repr.plot.width=18, repr.plot.height=12)
stemcellniche.marker <- c("LOC-Os01g16650","LOC-Os02g56130","LOC-Os03g51970","LOC-Os04g41900","LOC-Os05g44400")
FeaturePlot(rc.integrated, features = stemcellniche.marker,
cols = c("grey", "#360167"), label=F, repel=F, pt.size = 0.4,
label.size = 1.5, order=T, ncol = 3)
# Check marker gene expression-Epidermis
DefaultAssay(rc.integrated) <- "SCT"
options(repr.plot.width=14, repr.plot.height=6)
epidermis.marker <- c("LOC-Os03g19990")
FeaturePlot(rc.integrated, features = epidermis.marker,
cols = c("grey", "#c6b7fe"), label=F, repel=F, pt.size = 0.4,
label.size = 1.5, order=T, ncol = 3)
# Check marker gene expression-Atrichoblast
DefaultAssay(rc.integrated) <- "SCT"
options(repr.plot.width=18, repr.plot.height=6)
atrichoblast.marker <- c("LOC-Os01g14650","LOC-Os01g50820","LOC-Os01g64840")
FeaturePlot(rc.integrated, features = atrichoblast.marker,
cols = c("grey", "#59adf6"), label=F, repel=F, pt.size = 0.4,
label.size = 1.5, order=T, ncol = 3)
# Check marker gene expression-Trichoblast
DefaultAssay(rc.integrated) <- "SCT"
options(repr.plot.width=18, repr.plot.height=24)
trichoblast.marker <- c("LOC-Os12g05380","LOC-Os05g38770","LOC-Os10g03400",
"LOC-Os04g45290","LOC-Os06g48050","LOC-Os01g03530",
"LOC-Os01g11750","LOC-Os03g04210","LOC-Os03g19330",
"LOC-Os10g42750","LOC-Os06g08500")
FeaturePlot(rc.integrated, features = trichoblast.marker,
cols = c("grey", "#Ff4061"), label=F, repel=F, pt.size = 0.4,
label.size = 1.5, order=T, ncol = 3)
# Check marker gene expression-Trichoblast
DefaultAssay(rc.integrated) <- "SCT"
options(repr.plot.width=8, repr.plot.height=8)
FeaturePlot(rc.integrated, features = "LOC-Os05g38770",
cols = c("grey", "#Ff4061"), label=F, repel=F, pt.size = 0.4,
label.size = 1.5, order =T)
# Check marker gene expression-plot both trichoblast and trichoblast
DefaultAssay(rc.integrated) <- "SCT"
options(repr.plot.width=32, repr.plot.height=8)
FeaturePlot(rc.integrated, features = c("LOC-Os05g38770", "LOC-Os01g64840"),
cols = c("grey", "#Ff4061","#59adf6"), label=F, repel=F, pt.size = 0.4,
label.size = 1.5, order =T, blend = TRUE)
# Check marker gene expression-Exodermis
DefaultAssay(rc.integrated) <- "SCT"
options(repr.plot.width=18, repr.plot.height=12)
exodermis.marker <- c("LOC-Os03g37411","LOC-Os04g37980","LOC-Os03g02460",
"LOC-Os06g17260")
FeaturePlot(rc.integrated, features = exodermis.marker,
cols = c("grey", "#F8f38d"), label=F, repel=F, pt.size = 0.4,
label.size = 1.5, order=T, ncol = 3)
# Check marker gene expression-Trichoblast
DefaultAssay(rc.integrated) <- "SCT"
options(repr.plot.width=8, repr.plot.height=8)
FeaturePlot(rc.integrated, features = "LOC-Os03g37411",
cols = c("grey", "#F8f38d"), label=F, repel=F, pt.size = 0.4,
label.size = 1.5, order =T)
# Check marker gene expression-Sclerenchyma
DefaultAssay(rc.integrated) <- "SCT"
options(repr.plot.width=18, repr.plot.height=6)
sclerenchyma.marker <- c("LOC-Os08g02300","LOC-Os05g46610","LOC-Os08g05520")
FeaturePlot(rc.integrated, features = sclerenchyma.marker,
cols = c("grey", "#32CD32"), label=F, repel=F, pt.size = 0.4,
label.size = 1.5, order=T, ncol = 3)
# Check marker gene expression-Trichoblast
DefaultAssay(rc.integrated) <- "SCT"
options(repr.plot.width=8, repr.plot.height=8)
FeaturePlot(rc.integrated, features = "LOC-Os08g02300",
cols = c("grey", "#32CD32"), label=F, repel=F, pt.size = 0.4,
label.size = 1.5, order = T)
# Check marker gene expression-Cortex
DefaultAssay(rc.integrated) <- "SCT"
options(repr.plot.width=18, repr.plot.height=12)
cortex.marker <- c("LOC-Os03g04310","LOC-Os06g30730","LOC-Os05g33080",
"LOC-Os01g19220","LOC-Os04g46810")
FeaturePlot(rc.integrated, features = cortex.marker,
cols = c("grey", "#BF40BF"), label=F, repel=F, pt.size = 0.4,
label.size = 1.5, order=T, ncol = 3)
# Check marker gene expression-Trichoblast
DefaultAssay(rc.integrated) <- "SCT"
options(repr.plot.width=8, repr.plot.height=8)
FeaturePlot(rc.integrated, features = "LOC-Os03g04310",
cols = c("grey", "#BF40BF"), label=F, repel=F, pt.size = 0.4,
label.size = 1.5, order = T)
# Check marker gene expression-Endodermis
DefaultAssay(rc.integrated) <- "SCT"
options(repr.plot.width=18, repr.plot.height=12)
endodermis.marker <- c("LOC-Os01g15810","LOC-Os03g18640","LOC-Os10g06680",
"LOC-Os01g67390")
FeaturePlot(rc.integrated, features = endodermis.marker,
cols = c("grey", "#ffb480"), label=F, repel=F, pt.size = 0.4,
label.size = 1.5, order=T, ncol = 3)
# Check marker gene expression-Trichoblast
DefaultAssay(rc.integrated) <- "SCT"
options(repr.plot.width=8, repr.plot.height=8)
FeaturePlot(rc.integrated, features = "LOC-Os01g15810",
cols = c("grey", "#ffb480"), label=F, repel=F, pt.size = 0.4,
label.size = 1.5, order = T)
# Check marker gene expression-Pericycle
DefaultAssay(rc.integrated) <- "SCT"
options(repr.plot.width=18, repr.plot.height=12)
pericycle.marker <- c("LOC-Os02g56510","LOC-Os01g19170","LOC-Os01g58910",
"LOC-Os02g52930","LOC-Os07g44060")
FeaturePlot(rc.integrated, features = pericycle.marker,
cols = c("grey", "#08cad1"), label=F, repel=F, pt.size = 0.4,
label.size = 1.5, order=T, ncol = 3)
# Check marker gene expression-Phloem
DefaultAssay(rc.integrated) <- "SCT"
options(repr.plot.width=18, repr.plot.height=6)
phloem.marker <- c("LOC-Os08g04400","LOC-Os06g45410","LOC-Os01g52480")
FeaturePlot(rc.integrated, features = phloem.marker,
cols = c("grey", "#9d94ff"), label=F, repel=F, pt.size = 0.4,
label.size = 1.5, order=T, ncol = 3)
# Check marker gene expression-Trichoblast
DefaultAssay(rc.integrated) <- "SCT"
options(repr.plot.width=8, repr.plot.height=8)
FeaturePlot(rc.integrated, features = "LOC-Os06g45410",
cols = c("grey", "#9d94ff"), label=F, repel=F, pt.size = 0.4,
label.size = 1.5, order = T)
# Check marker gene expression-Xylem
DefaultAssay(rc.integrated) <- "SCT"
options(repr.plot.width=18, repr.plot.height=12)
xylem.marker <- c("LOC-Os01g67090","LOC-Os01g48130","LOC-Os09g25490",
"LOC-Os10g32980","LOC-Os01g54620")
FeaturePlot(rc.integrated, features = xylem.marker,
cols = c("grey", "#B7410E"), label=F, repel=F, pt.size = 0.4,
label.size = 1.5, order=T, ncol = 3)
# Check marker gene expression-Metaxylem
DefaultAssay(rc.integrated) <- "SCT"
options(repr.plot.width=18, repr.plot.height=6)
metaxylem.marker <- c("LOC-Os01g73980","LOC-Os07g44450","LOC-Os08g38170")
FeaturePlot(rc.integrated, features = metaxylem.marker,
cols = c("grey", "#834200"), label=F, repel=F, pt.size = 0.4,
label.size = 1.5, order=T, ncol = 3)
# Try the dotplot for the marker genes
all.marker <- read.csv("./1-Root_Atlas//Marker_genes_list_for-dotplot.csv")
all.marker$Gene.ID
options(repr.plot.width=18, repr.plot.height=6)
Idents(rc.integrated) <- rc.integrated$celltype.fine.anno
DotPlot(rc.integrated,assay = "SCT",
features = all.marker$Gene.ID,
cols = c("lightgrey", "#360167"),
col.min = -2.5,
col.max = 2.5,
dot.min = 0,
dot.scale = 8,
group.by = NULL,
split.by = NULL,
scale = TRUE,
scale.by = "radius",
scale.min = NA,
scale.max = NA
)
# Check marker gene expression-Stem cell niche/meristem
DefaultAssay(rc.integrated) <- "SCT"
options(repr.plot.width=18, repr.plot.height=12)
marker <- c("LOC-Os02g47640","LOC-Os02g02690", "LOC-Os11g26910",
"LOC-Os09g10260")
FeaturePlot(rc.integrated, features = marker,
cols = c("grey", "#360167"), label=F, repel=F, pt.size = 0.4,
label.size = 1.5, order=T, ncol = 3)